const { program } = require("commander");

/* 
 模拟 git clone 命令
 添加选项 -b 未输入时默认是 master
*/
program
  .command("clone")
  .argument("<source>", "远程仓库地址")
  .option("-b, --branch", "指定分支", "master")
  .action((p, b) => {
    console.log("拿到参数：", p, b);
    // 执行 node ./demo.js clone https://githup*** -b dev
    // 终端打印：拿到参数： https://githup*** { branch: true }
  });

/* 
 模拟 npm 安装依赖命令
*/
program
  .command("i")
  .description("安装依赖")
  .argument("<name>", "依赖名称")
  .option("-dev, --devloop", "安装到开发依赖")
  .option("-prod, --production", "安装到生产依赖")
  .action((p1, p2) => {
    console.log("得到参数", { p1, p2 });
    // 执行 node ./demo.js i dayjs -dev
    // 终端打印：得到参数 { p1: 'dayjs', p2: { devloop: true } }
  });
program
  .command("install")
  .description("安装依赖")
  .argument("<name>", "依赖名称")
  .option("-dev, --devloop", "安装到开发依赖")
  .option("-prod, --production", "安装到生产依赖")
  .action((p1, p2) => {
    console.log("得到参数", { p1, p2 });
    // 执行 node ./demo.js install dayjs -dev
    // 终端打印：得到参数 { p1: 'dayjs', p2: { devloop: true } }
  });

program.parse();
